"""
worker queue
                  \ -- Q1 -- C1
P -- X(fanout) -- \
                  \ -- Q2 -- C2

一个消息能通过交换机发送到多个队列，被多个消费者接收
"""


# 获取MQ连接
from pingtai.mqdemo.mqutils import get_connection

connection = get_connection()

# 在连接上创建一个频道CHANNEL
channel = connection.channel()

# 创建一个fanout(广播)类型的交换机exchange，名字为logs。
channel.exchange_declare(exchange='logs',exchange_type='fanout')

# 发送消息
channel.basic_publish(exchange='logs',  # 指定交换机exchange为logs，这里只需要指定将消息发给交换机logs就可以了，不需要指定队列，因为生产者消息是发送给交换机的。
                      routing_key='',  # 路由键，在fanout类型中，绑定关键字routing_key必须忽略，写空即可
                      body='Hello World!'  # 生产者要发送的消息
                      )
print("[生产者] send 'Hello World!'")

connection.close()  # 当生产者发送完消息后，可选择关闭连接
